package top.zywork.vo;

import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;

import java.math.BigDecimal;
import java.util.Date;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;

/**
 * ShippingAddressVO值对象类<br/>
 *
 * 创建于2020-10-21<br/>
 *
 * @author http://zywork.top 王振宇
 * @version 1.0
 */
@Data
@NoArgsConstructor
@AllArgsConstructor
@Builder
@EqualsAndHashCode(callSuper = true)
public class ShippingAddressVO extends BaseVO {

	private static final long serialVersionUID = -9223372035219229542L;

	/**
	 * 收货地址编号
	 */
	private Long id;
	/**
	 * 用户编号
	 */
	@NotNull(message = "此项是必须项")
	private Long userId;
	/**
	 * 收件人
	 */
	@NotBlank(message = "此项是必须项")
	@Size(min = 1, max = 20, message = "必须是1-20个字符")
	private String realName;
	/**
	 * 手机号
	 */
	@NotBlank(message = "此项是必须项")
	@Size(min = 1, max = 11, message = "必须是1-11个字符")
	private String phone;
	/**
	 * 省
	 */
	@Size(min = 0, max = 20, message = "必须小于20个字符")
	private String province;
	/**
	 * 市
	 */
	@Size(min = 0, max = 20, message = "必须小于20个字符")
	private String city;
	/**
	 * 区/县
	 */
	@Size(min = 0, max = 20, message = "必须小于20个字符")
	private String district;
	/**
	 * 地址别名
	 */
	@Size(min = 0, max = 100, message = "必须小于100个字符")
	private String addressAlias;
	/**
	 * 详细地址
	 */
	@Size(min = 0, max = 255, message = "必须小于255个字符")
	private String address;
	/**
	 * 是否默认
	 */
	private Byte isDefault;
	/**
	 * 版本号
	 */
	private Integer version;
	/**
	 * 创建时间
	 */
	private Date createTime;
	/**
	 * 更新时间
	 */
	private Date updateTime;
	/**
	 * 是否激活
	 */
	private Byte isActive;
	/**
	 * 区域、宿舍号
	 */
	@Size(min = 0, max = 255, message = "必须小于255个字符")
	private String area;
	/**
	 * 楼栋
	 */
	@Size(min = 0, max = 255, message = "必须小于255个字符")
	private String storiedBuilding;
	/**
	 * 学校
	 */
	@Size(min = 0, max = 255, message = "必须小于255个字符")
	private String school;
	/**
	 * 学校ID
	 */
	private Long schoolId;

}